![]() Verschlüsselungs- und Entschlüsselungssystem auf der Basis eines Blockverschlüsselungsalgorithmus un
专利摘要:
Blockverschlüsselungsverfahren mit symmetrischen Schlüsseln werden zum Schutz von digitalen Informationen eingesetzt. Die Verfahren beruhen darauf, dass Klartextinformationen in Blöcke aufgeteilt werden und anschließend in mehreren Runden mit gleichartigen Prozeduren und einem festgelegten Schlüssel durch ein Programm so verändert werden, dass sich aus den erzeugten Informationen nur mit Kenntnis des Schlüssels und des Verfahrens die Klartextinformationen wieder herstellen lassen. Dabei wird sichergestellt, dass möglichst mit keinem bekannten Kryptoanalyseverfahren die verschlüsselten Informationen in endlichen Zeiträumen zurückgewonnen werden können. Weiterhin darf der benutzte Schlüssel auf keinen Fall ermittelt werden können. DOLLAR A Die Neuerung besteht darin, anstelle des festgelegten Schlüssels für das Blockverschlüsselungsverfahren, für jede neue Verschlüsselungssitzung und zusätzlich für jeden Klartextdatenblock einer Sitzung einen neuen Schlüssel zu erzeugen. Ein solcher fortlaufend neu erzeugter Schlüssel wird in der Literatur auch als Einmalschlüssel bezeichnet. Sind alle notwendigen Informationen zur Erzeugung des Einmalschlüssels bekannt, so kann mit dem Einmalschlüssel die Klartextinformation aus den verschlüsselten Informationen gewonnen werden. DOLLAR A Vor jeder Verschlüsselung eines Datenblocks wird mit dem neuen Einmalschlüsselverfahren ein separater Schlüssel aus einem sehr großen Schlüsselraum bestimmt. DOLLAR A Das neue Verfahren zum Erzeugen eines Einmalschlüssels ... 公开号:DE102004006570A1 申请号:DE200410006570 申请日:2004-02-11 公开日:2005-09-29 发明作者:Herbert Golawski 申请人:Golawski Herbert Dipl-Ing; IPC主号:H04L9-06
专利说明:
[0001] ImZusammenhang mit der steigenden Anzahl von Datenübertragungsstrecken und demwachsenden Aufkommen von persönlichenDaten, die nicht in HändeDritter gelangen sollen, nimmt die sichere Verschlüsselungvon Daten einen besonderen Platz ein und besitzt ein großes Entwicklungspotential.Dabei spielt nicht nur die gesicherte Übertragung, sondern auch diegesicherte Speicherung von Daten eine wichtige Rolle. [0002] Eswurde vorgeschlagen ein abgewandeltes und in der Sicherheitsstufeskalierbares Verfahren zur Verschlüsselung von Daten auf eineruPSD-Plattform zu realisieren. Fürein symmetrisches Verschlüsselungsverfahrensollte ein Verfahren implementiert werden, das den schnellen Wechselder Schlüsseloder Blockgrößen ermöglicht undden neuen VerschlüsselungsstandardAES benutzt. [0003] Ausden Vorgaben der Projektidee wurden die folgenden Anteile im Prototypenumgesetzt: – Aufbau und Funktion des StandardAES-Rijndael-Algorithmus auf uPSD – Erstelleneines Verfahrens füreinen dynamisch wechselnden Einmalschlüssel – Implementiereneines physikalischen Schutzes mit uPSD-Funktionen [0004] AlleSoftwaremodule des zugrunde liegenden Verschlüsselungsalgorithmus (AES-Rijndael)werden von der Modifikation benutzt jedoch nicht verändert. [0005] InErweiterung zum Standard AES-Rijndael wurde ein Einmalschlüsselverfahrenentwickelt, das anstelle des festen Schlüssels im Standard-Rijndaeleinen wechselnden, in quasi zufälligerWeise sich änderndenSchlüsselbenutzt. [0006] ImRahmen der Sitzungseröffnungzur Übermittlungvon verschlüsseltenDaten werden anstelle eines Sitzungsschlüssels, Parameter für das Schlüsseländerungsverfahrenim Rahmen dieser Sitzung zwischen Sender und Empfänger ausgetauscht.Im Unterschied zu den gängigenBlockverschlüsselungsverfahrenwird im Verlauf der gesicherten Datenübermittlung der Schlüssel inkurzen Zeiträumengeändert. [0007] DerEinmalschlüsselwird aus einem Datenfeld erstellt, das auf der Basis von Funktionenzur Berechnung von Fraktalen aufgebaut ist. Aus diesem Feld werdenmittels Selektionsfunktionen die Zufallsschlüssel der Sitzung ermittelt.Die Auswahl der Selektionsfunktionen wird durch einen Pseudo Zufallszahlengenerator gesteuert,der in Sender und Empfängerwährendder Sitzungseröffnungsynchronisiert werden muß. [0008] DerEinmalschlüsselbesteht aus mehreren Komponenten – einemDatenfeld, dass mit Hilfe von Funktionen berechnet wird, die für die Berechnungvon Fraktalen wie Mandelbrot- oder Juliamengen benutzt wird – einerfestgelegten Anzahl von Selektionsfunktionen mit denen die für die gewünschte Schlüsselläge notwendigeBytefolge aus dem Datenfeld entnommen wird – einempseudo Zufallszahlengenerator, dessen Wert bei jeder Berechnungeines neuen Basisschlüssels geändert wird.Der Zufallszahlenwert regelt die Auswahl der Selektionsfunktionund liefert zusätzlichWertvorgaben bei der Datenauswahl innerhalb der Selektionsfunktionen. [0009] WerdenDaten zwischen einem Sender und Empfänger ausgetauscht, so ist esnotwendig, dass beide Systeme die gleichen Informationen über dieStartwerte zur Initialisierung des Zufallszahlengenerators besitzen. [0010] Derphysikalische Schutz ist ein Vorschlag die im uPSD vorhandenen Analog/Digital-Schnittstellen zu nutzen,um sogenannten Power-Attacks und Timing-Attacks auf MikroprozessorbasierteVerschlüsselungssystemevorzubeugen. [0011] Imfolgenden Kapitel wird eine kurze Erläuterung zur Basisfunktion undden implementierten Erweiterungen beschrieben. Grundlagen für die Randbedingungender Implementation wurden den Büchernund Dokumenten der Literaturliste entnommen [1,3,4,5]. [0012] DieKernfunktionalitätdes AES Rijndael ist in [1], [4] ausführlich beschrieben. [0013] DerBlockchiffrieralgorithmus Rijndael wurde im Rahmen des Wettbewerbszum neuen amerikanischen VerschlüsselungsstandardAES (Advanced Encryption Standard) entwickelt. Bei der Entwicklungwurde insbesondere auf einen kleinen Code, eine Verarbeitbarkeitauf 8-Bit Prozessoren und mikrokontrollerfreundliche Verarbeitungsalgoritmengeachtet. [0014] DerAlgorithmus arbeitet mit drei Basisschlüssellängen von 128, 192 und 256 Bit.Die zulässigen Blocklängen entsprechenden drei Schlüssellängen. Ausdem Basisschlüsselwerden zu Beginn einer Verschlüsselung – abhängig vonder Schlüssellänge – 10 bis14 Rundenschlüsselgeneriert. Fürjede Runde wird aus einem Basisschlüssel ein eigener Rundenschlüssel erstellt.Mit dem generierten Rundenschlüsselwerden beim Rijndael einzelne Datenblöcke in 10 bis 14 Runden verschlüsselt. Galoisfelderermöglicheneine elegante Implementierung zur Durchführung von Entschlüsselungenbei gleichbleibendem Basisschlüssel. [0015] Auseinem Basisschlüsselwerden abhängigvon der Schlüssellänge bzw.der Blocklängeweitere Rundenschlüsselerzeugt. Die Rundenanzahl steigt mit der Schlüssellänge an. Der erstellte Rundenschlüssel bleibtfür Verschlüsselungund Entschlüsselunggleich. [0016] DerDatenstrom wird in Blöckemit festgelegter Längeunterteilt. Die Blocklängenvariieren zwischen 128, 192 und 256 Bit und richten sich nicht nachder Schlüssellänge. Jedereinzelne Block wird mit den Funktionen des AES-Rijndael (ADDKEYS,SHIFTROWS, SUBSTITUTION, MIXCOLUMNS, INVMIXCOLUMNS) in einer festgelegtenReihenfolge übermaximal 14 Runden verschlüsselt. [0017] Lediglichder erste Block wird im Verschlüsselungsmodusder Datenstromverschlüsselung(CBC = Cipher Block Chaining, vgl [1]) abweichend behandelt. [0018] Diein der vorliegenden Implementation benutzte Referenzinstallationdes AES-Rijndael V2.0 entstammt [1] bzw. [5] und wurde von JoanDeamen erstellt. Die Vorlagen dazu sind auf der beiliegenden CDim Unterverzeichnis AES_SRC_2 enthalten. [0019] Aufder Plattform uPSD wurde eine erweiterte Schlüsselgenerierung mit dem Zielimplementiert, zusätzlicheinen generischen, sitzungsspezifischen Einmalschlüssel für den AES-Rijndaelbereitzustellen. [0020] Auseinem initialen Schlüsselfeldwerden Startwerte füreinen Zufallszahlengenerator (Pseudo Random Generator) und Basisdatenzur Berechnung eines Bytefeldes mittels fraktalen Funktionen ermittelt.Das auf diese Weise erzeugte fraktale Feld basiert auf speziellen,in der Sitzungseröffnungfestgelegten Startwerten und bleibt als Schlüsselbasis für die Sitzung erhalten. Diefraktale Berechnungsbasis wurde gewählt, um sicherzustellen, dasskeine schlechten Schlüsselmöglichsind. [0021] ImRahmen der Entwicklung wurden fraktale Berechnungsmethoden für Mandelbrot-und Juliamengen herangezogen. Fraktale Funktionen sind einerseitsstetig, andererseits jedoch nirgends differenzierbar [8]. Abhängig vonfesten Startpunkten in der komplexen Gausschen Ebene werden weitereFolgepunkte in der komplexen Ebene mit unterschiedlicher Dynamiksowie Konvergenz- bzw. Divergenzeigenschaften errechnet. BekannteFraktale Bilder geben die Dynamik der Berechnung von Punktefolgenanschaulich wieder. Die größte Dynamikfindet sich in den Randbereichen der Mandelbrot- und Juliamengen.Die berechneten Punkte in der komplexen Ebene sind eindeutig reproduzierbareFolgen von Wertepaaren. Die Startwerte für die Berechnung sollten wegender besonderen Divergenzeigenschaften der Punktefolgen in den Randbereichender Mandelbrot- bzw. Juliamengen liegen. Aus diesem Grund ist derStartwert der Implementation als Defaultparameter hinterlegt undwird derzeit nur in einer Umgebung dazu variiert. [0022] Dieaus der fraktalen Berechnung erhaltenen Wertepaare werden als 4-Bytelange Fließkommazahlen ineinem 1024-Byte großenDatenfeld abgelegt. Dazu sind 64 Punkte in der komplexen Ebene zubestimmen. Dies erfolgt mit einer Mischung von Berechnungen zu Mandelbrot-und Juliamengen. Nach jeweils 4 Punkten werden die Startwerte für die Berechnungweiterer Punkte mit den Vorgaben aus dem Initialen Schlüsselfeld sprunghaftverändert.Dieses Verfahren schütztvor dem Überlaufvon Variablen währendder Berechnung. [0023] Wegender Selbstähnlichkeitder Abbildungen in der komplexen Ebene werden die berechneten absolutenWerte miteinander und in Bezug auf den Abstand zum Ursprung derkomplexen Ebene verknüpft.Dies erfolgt mit dem Hintergrund, die Wertefolgen weiter für die Benutzungals Einmalschlüsselzu durchmischen. Das Nachbilden des Einmalschlüssels soll möglichstnur unter Kenntnis aller Parameter und Berechnungsschritte und niemalsaufgrund der Ausgangsdaten der Verschlüsselung möglich sein. [0024] Dasso entstandene Bytefeld wird im Weiteren mit dem Begriff FraktalesFeld bezeichnet. [0025] Derletztendlich gültigePseudozufallsschlüsselwird mit Hilfe von Selektionsfunktionen aus dem Fraktalen Feld entnommen.Diese Selekttionsfunktionen können über einFunktiospointerarray aufgerufen werden. Es sind bis zu 256 Selektionsfunktionenmöglich.Derzeit ist die Anzahl auf 8 beschränkt. Gesteuert wird die Auswahlder Selektionsfunktion durch eine Bitfolge aus dem aktuellen Werteines Pseudozufallsgenerators, die durch Maskierung des aktuellenZufallswertes erhalten wird. Die Maskierung stellt eine der wartbarenParametrisierungen dar. [0026] Dieso erhaltene Bytefolge wird als Basisschlüssel für das anschließend aufgerufeneStandard-Schlüsselerweiterungsverfahren(Rijndael-KeyScheduler) des AES-Rijndael vor der Verschlüsselungeines Datenblocks behandelt. [0027] Zusammenfassendkann die Prozedur zur Bestimmung eine Einmalschlüssels wie folgt beschrieben werden: Für jedenDatenblock der AES-Rijndaelverschlüsselung wird ein Basisschlüssel ausdem Fraktalen Feld über einezufälligausgewählteSelektionsfunktion ermittelt. Es werden so viele Bytes aus dem FraktalenFeld selektiert, bis die Vorgabe für die gewählte Schlüssellänge zur Rijndael-Verschüsselungder Sitzung erfülltist. Die Auswahl der Selektionsfunktion wird von dem für jedenDatenblock neu berechneten Pseudo Zufallszahlenwert gesteuert. Dazuwird aus dem Zufallszahlenwert eine Bitfolge durch eine festgelegteMaskierung ausgekoppelt, die die Adresse der Selektionsfunktionaus dem Funktionspointerarray festlegt. Zusätzlich wird über eineweitere Schablone aus dem gleichen Pseudo Zufallszahlenwert einOffset festgelegt, der den Anfangswert der Selektion durch die Selektionsfunktioninnerhalb des berechneten fraktalen Bytefeldes bestimmt. So werdenauch bei gleicher Funktionsselektion über das fraktale Feld unterschiedlicheBytefolgen fürden Einmalschlüsselgewonnen. Die Abfolge von Funktionsaufrufen kann als Zufallsschlüsselgeneratorbezeichnet werden. [0028] Allebenutzten Algorithmen erzeugen eineindeutiges, reproduzierbaresZahlenmuster, sodaß beiidentischen Anfangsbedingungen gleiche Zahlenmuster und dementsprechendgleiche Einmalschlüsselfolgenerhalten werden. [0029] Dieoben beschriebene Konstruktion ermöglicht eine Vielfalt an Parametrisierungenzur Steuerung der Berechnung der Zahlenmuster für den Basisschlüssel. DieParameter und Selektionsfunktionen können auf der uPSD-Plattformin einen eigenen Speicherbereich des Flash-Eprom gelegt werden.Dadurch besteht die Möglichkeit,die Parametersätzeund Selektionsfunktionen in Wartungsintervallen auszutauschen. [0030] DieSelektionsfunktionen wurden als Funktionspointer entwickelt undlassen sich überein Array von Funktionspointern ansprechen (selektieren). Die Strukturund Komplexitätder Selektionsfunktionen wurde bewusst ähnlich gehalten, damit dieAngriffsmöglichkeitdurch gemessene Laufzeitunterschiede möglichst gering ist. Die Selektionsfunktionenkönnengenau wie die Defaultparameter, in das wartbare Codesegment gelegt werdenund gehörendamit zum wartbaren Anteil des Einmalschlüsselverfahrens. [0031] Dievorliegende Implementation verfügtlediglich über8 verschiedene Selektionsfunktionen. Die Anzahl kann problemlosauf bis zu 256 erhöhtwerden. [0032] Aufder Basis der Werte eines Zufallszahlengenerators wird zu jedemneu zu verschlüsselndenBlock jeweils ein neuer Basisschlüssel mittels der Selektionsfunktionenaus dem fraktalen Feld entnommen. Die gewählte Blocklänge steuert die Anzahl derselektierten Bytes fürden Basisschlüssel.Der selektierte Basisschlüsselwird mit der Schlüsselerweiterungsfunktiondes Rijndael auf die füreine Verschlüsselungmit dem AES-Rijndael-Algorithmus notwendige Anzahl von Rundenschlüsseln erweitert. [0033] DieVerwendung des oben beschriebenen Einmalschlüsselverfahrens gibt zusätzlicheSicherheit, da die jeweils generierten Schlüssel sowohl auf Basisdatender Sitzung (Intiales Schlüsselfeld)als auch auf den implementierten Selektionsfunktionen und fest eingestelltenParametern, sowie einem intrinsischen Schlüssel basieren. Damit ist eineOneTimePad-Verschlüsselungerreicht, die eine erweiterte Schutzfunktion gegenüber festenSchlüsselnbewirkt. [0034] Folgendeneue Anteile wurden eingerichtet: – Ein Schlüsselwechselverfahrenmit dem Ziel eines sitzungsabhängigenEinmalschlüsselsfür eineOneTimePad-Verschlüsselung – DasSchlüsselwechselverfahrenbasiert auf – einembei der Sitzungseröffnungberechnetem fraktalem Bytefeld, das für jede Sitzung in Abhängigkeit vom übermitteltenInitialen Schlüsselfeldvariiert. – Selektionsfuntionen,die aus dem fraktalen Feld sprunghaft ausgewählte, zufällige Bytefolgen als neue Basisschlüssel für die Verschlüsselungjedes Blocks mit dem AES-Rijndaelauswählen. – einerSteuerung der Auswahl der benutzten Selektionsfunktion über einenPseudozufallszahlengenerator, dessen Startwerte aus dem initialenDatenfeld entnommen werden. – einem128 Byte grosses initialen Datenfeld mit zufälligen Bytefolgen, das dieStartwerte fürden Zufallszahlengenerator und die Sprungwerte beinhaltet, mit denendie Berechnung des fraktalen Feldes um einen parametergesteuertenBasispunkt in der [0035] Eswird in der Literatur [1], [7] darauf hingewiesen, dass eine neuereAngriffsmethode auf mikroprozessorbasierte Verschlüsselungssystemedarin besteht, aus dem gemessenen zeitlichen Verlauf der Versorgungsspannungauf die Durchführungvon bekannten Codesequenzen zurückzuschließen unddaraus Vorteile beim Angriff auf das Verschlüsselungssystem und den benutztenSchlüsselzu gewinnen. Die Versorgungsspannung variiert dabei je nach ausgeführter Codesequenzund kann gemessen werden. Ein entsprechender Angriff auf den AES-Rijndaelwurde in [7] beschrieben. [0036] DasDesign des Kryptoencoders/decoders benötigt keinerlei externe Komponenten,außerder weiter unten beschriebenen sehr eng am gehäuse anliegenden Schutzbeschaltungzum Schutz vor physikalischen Angriffen. [0037] DurchNutzung des Pulsweitenmodulators (PWM) und der Analog-Digital-Wandlereinheit(ADC) in Verbindung mit einer externen, energiespeichernden Beschaltungmit Sensoreigenschaften kann ein wirkungsvoller Schutz gegen derartigeAngriffe aufgebaut werden. [0038] MitHilfe eines unabhängigenzweiten Zufallszahlengenerators wird im vorliegendes Design des AES-MODdie Pulsbreite des Ausgangssignals quasizufällig verändert. Das PWM-Signal wird über eineniederohmige Komponente ausgekoppelt und belastet so in zufälligen,periodischen Mustern die Versorgungsspannung. Auf diese Weise werdenperiodische Versorgungsspannungsschwankungen am Mikrokontroller, diedurch Funktionsaufrufe des Verschlüsselungsalgorithmus hervorgerufenwerden, wirkungsvoll überlagert undunkenntlich gemacht. [0039] Derzweite Schritt unter zusätzlichemEinsatz des Analog-Digital-Wandlers ist derzeit noch nicht implementiertvollständigimplementiert. [0040] Dienachfolgende Auflistung von Anforderungen an einen Verschlüsselungsalgorithmusentstammt der benutzten Literatur ([1] S.269 ff). Die einzelnen Überschriftenenthalten die Kernaussagen. Darunter ist jeweils beschrieben, inwieweitdie Anforderung im AES-MOD berücksichtigtwurden. – „Er mussKonfusion realisieren, d.h. die Beziehung zwischen Klartext undGeheimtext darf nicht erkennbar sein.": Diese Anforderung ist Bestandteilder AES-Rijndael-Kernfunktionalität. Durch die Berechnung einesFraktalen Feldes und die zugehörigepseudozufallszahlengesteuerte, sprunghafte Auswahl von Schlüsselanteilenwird die Anforderung auch fürden ECB-Modus in der AES-Rijndael Erweiterung erreicht. – „Er mussDiffusion realisieren, d.h. Strukturen im Klartext sollen so gutwie möglichverwischt werden." DieseAnforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität. – „Die Schlüssellänge sollteso groß gewählt sein,daß BruteForce fürden Wert der Nachricht einen zu hohen Aufwand bedeutet." Diese Anforderungwird beim AES-MOD durch die Einmalschlüsselfunktionalität erweitert. BekannteBrute Force Angriffsmethoden auf den AES-Rijndael können inder AES-Extentionjeweils nur den Schlüsselfür eineneinzenen, verschlüsseltenKlartextblock von maximal 32 Bytes Längeermitteln. Das Entschlüsseln desgesamten Klartextes oder sogar aller bisher aufgezeichneten Informationenbedeutet einen erheblich grösserenAufwand unter Einsatz von Brute Force Angriffsmethoden. – „Gleicheoder ähnlicheKlartexte dürfenniemals gleiche oder ähnlicheGeheimtexte erzeugen." DieseAnforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität im CBC-Modusund wird in der AES-Rijndael-Erweiterung auch im ECB-Modus erreicht. – „Ein Geheimtextdarf sich nicht von einer Folge zufälliger Zahlen unterscheiden." Diese Anforderungist Bestandteil der AES-Rijndael-Kernfunktionalität – „Es dürfen beikonstantem, periodischem oder anders auffällig strukturiertem Klartextkeine verwertbaren Zyklen auftreten, d.h. der Geheimtext darf sichnicht ab einer Stelle wiederholen." Diese Forderung ist bei der Einmalschlüsselberechnungberücksichtigt.Der Zyklus des Pseudo Zufallsgenerators liegt bei 2^60. Die Wertedes Zufallszahlengenerators sind außerhalb des mikrokontrollersniemals zugänglichund werden nur zur Laufzeit lediglich im flüchtigen Speicher abgelegt.Die Strukturen der berechneten Werte des Fraktalen Feldes werdendurch sprunghafte Selektionen in einem Bytefeld unkenntlich gemacht. – „Der Algorithmusdarf keine gefährlichenoder schwachen Schlüsselhaben, und falls doch, dann müssen dieseleicht zu ermitteln sein." – DieseAnforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität. – „Die Implementierungmuss einen hinreichend grosse Schlüsselraum garantieren." Diese Anforderungist Bestandteil der AES-Rijndael-Kernfunktionalität. Inwieweitder Schlüsselraumauf der fraktale Berechnungsbasis in sich eine hinreichende Sicherheitbietet ist noch zu beweisen. In jedem Fall gilt, daß es für jedenPunkt der Mandelbrotmenge eine eigene Juliamenge gibt, also unendlichviele Berechnungsergebnisse von denen wiederum nur ein Bruchteilfür einenSchlüsselbenutzt wird. Die grosse Vielfalt von denkbaren Selektionsfunktionensollte eine sich niemals wiederholende Schlüsselfolge ermöglichen. – „Ebensodürfensich Initialisierungsvektoren nicht wiederholen" – BeimEinsatz eines sicheren Einmalschlüssels ist der Initialisierungsvektorund die Nutzung des CBC-Modus nicht unbedingt notwendig. Dennochwurde auch fürdie Rijndael-Modifikation die Nutzung des CBC-Modus vorgesehen.Der Initialisierungsvektor ist im Prototypen des AES-MOD fest vorgegeben,damit die Unterschiede der verschiedenen Verschlüsselungstypen und -modi mitHilfe der Testfunktionen des AES-MODbesser demonstriert werden können. – „Die Angriffsmöglichkeitenfür Timingoder Power-Attacken sollten nach Möglichkeit eingeschränkt werden." Der Schutzvor Power- und Timingattacken kann durch den Ausbau der vorgeschlagenenLösungeines physikalischen Schutzes überdie Nutzung des Zufallszahlen gesteuerten Pulsweitenmodulators undder Analog- und Digitalkanäledes uPSD-Mikrokontrollersverbessert werden. Weitere sensorische Eigenschaften der externenBeschaltung im Sinne eines Sensorfeldes sind denkbar. [0041] DieSicherheit von Verschlüsselungssystemenist zusätzlichdurch Verteiltung der Kenntnis von Schlüsselanteilen deutlich zu steigern,da die Sicherheit eines Verschlüsselungssystemsin nachhaltigem Maß vonder Gewissenhaftigkeit des oder der Benutzer abhängig ist. Man denke hier nuran Passworte, die unter die Tastaturen von Arbeitsplatzrechnernzu finden sind. [0042] Darumwurde im AES-MOD darauf geachtet, daß nur die Kenntnissen von aktuellenSchlüsselinformationenund unzugänglichen, änderbarenBerechnungsverfahren die Entschlüsselungvon Informationen ermöglicht. [0043] DerBenutzer erhältden intrinsischen Schlüssel,oder Teile aus diesem Schlüssel.Zusätzlichexistiert ein Parametersatz und Berechnungsfunktionen, die festim System verankert sind. Die Weitergabe dieser Information isteinem Anwender nicht möglich.Zusätzlichbesteht die Möglichkeitdiese Parameteranteile in Zyklen zu ändern, ohne daß der Schlüsselanteildes Anwenders (Intrinsicher Schlüssel)verändertwerden muss. Nur alle Informationen gemeinsam ermöglichendas Ver- und Entschlüsselnder Information In der nachfolgenden Grafik sind die Verschlüsselungsverfahrendes Standard AES-Rijndael und der AES-Rindael-Modifikation mit PseudoZufallsschlüsselals Nassi-Schneidermann-Diagrammedargestellt. [0044] Wiein Kapitel 2 beschrieben besteht die AES-Modifikation (Rijndael-Erweiterung)darin, dass zusätzlichzur Rijndaelkernfunktionalitätdie Verwendung eines Einmalschlüsselsunterstütztwird. Zusätzlichwurden weitere Anteile wie Wartbarkeit, Verteilung der Kenntnisvon Schlüsselanteilenauf verschiedene Verantwortlichkeiten in untereinander nicht einfachzugänglicheBereiche eingerichtet. [0045] DerEinmalschlüsselbasiert auf drei Grundfunktionen 1) Das initialeSchlüsselfeldverbirgt verschlüsselteInformationen zu den Basiswerten für die Berechnung eines fraktalenDatenfeldes, sowie die Initialwerte für einen Pseudozufallszahlengenerator. 2) Der Pseudozufallszahlengenerator steuert den Zugriff aufdie Selektionsfunktionen und den Startwert bei der Selektion vonBytes durch die Selektionsfunktionen. 3) Die Selektionsfunktionen dienen zur Auswahl von Bytefolgenaus dem fraktalen Datenfeld. Die selektierten Bytefolgen stellendie Basisschlüsselfolgedar. Jeder jedem Basisschlüsselwird mit der Schlüsselerweiterungsfunktiondes Standard Rijndaelalgorithmus bearbeitet und wird anschliessendzur Verschlüsselung einesKlartextdatenblocks benutzt. [0046] DerEinmalschlüsselbeinhaltet alle fortlaufend erzeugten Basisschlüssel, mit denen jeder zu verschlüsselndeDatenblock in einen Geheimtextblock mit der Standardfunktionalität des Rijndael-Algorithmus umgewandeltwird. [0047] InitialeSchlüsselfeldbesteht aus 128 Bytes. Dieses Bytefeld beinhaltet mit dem intrinsischenSchlüsselverschlüsseltvier Basiswerte mit jeweils 4 Byte, die als Startwerte für die Berechnungdes Einmalschlüssels benötigt werden.Das Initale Schlüsselfeldbesteht aus zufälligenBytefolgen. Dadurch kann bei einem „Brute Force" Angriff (Ausprobierenaller möglichenSchlüssel)eine automatisierte Prüfungauf sinnvolle Prüfmuster undsomit auf ein korrektes Ergebnis der Entschlüsselung nicht angewendet werden. [0048] Dieversteckten Werte sind: – Zwei Variationswerte für die Berechnungdes fraktalen Feldes: delta x0 und delta y0 – ZweiStartwerte fürdie Initialisierung des Pseudozufallszahlengenerators: rval_0und rval_1 [0049] DieWerte könnenmit eigenen Selektionsfunktionen als Bytefolgen aus dem Feld extrahiertwerden. Die gewonnenen Daten sind die Basisdaten zur Verschlüsselung/Entschlüsselungmit dem Einmalschlüssel. [0050] Für die Erzeugungdes fraktalen Feldes mit einer willkuerliche gewählten Menge von 1024 Byte-Werten,werden die Berechnungsverfahren zu Mandelbrot- und Julia-Mengenbenutzt: [0051] Generellgilt z = x + iy mit x = Realteil und y = Imaginärteil eines Punktes in derkomplexen Gausschen Zahlenebene. Ein Punkt entspricht einem Wertepaarbei der Berechnung des Fraktalen Feldes. [0052] DurchVariation der Konstanten c (Mandelbrot) oder durch Variation desStartpunktes z0 (x0 + iy0) (Julia) über einen vorgegebenen Bereichder Gauschen Komplexen Ebene könnenPunktefolgen als Basis fürdie Berechnung des fraktalen Feldes gewonnen werden. Es gibt zujeder Konstanten c eine eigene Juliamenge und damit unendlich vielePunkte. Die grosse Menge an möglichenPunktefolgen, sowie die sprunghafte Abfolge der aufeinanderfolgenden,berechneten Punkte ist der Grund für die Auswahl eines fraktalberechneten Feldes als Basis fürdie neue Einmalschüsselfunktionalität. [0053] WeitereDetailinformationen zu Fraktalen können der Literatur [9, 10]entnommen werden. Insbesondere Divergenz-, Konvergenz- und Zufallseigenschaften(Bifurkationen) erhöhendie Eignung fraktaler Berechnungen für die Erzeugung von Zufallszahlenfolen. [0054] DieKombination von Mandelbrot und Julia-Mengen in der vorliegendenAES-Modifikation bedeutet, daß sowohldie Konstante c als auch die Werte fuer x0 und y0 im Laufe der Berrechnungdes fraktalen Feldes variiert werden. [0055] DieVariablentiefe bei der Berechnung wurde im uPSD Design auf Float-Variablen(4 Bytes) eingeschränkt.Die berechneten Wertepaare des fraktalen Feldes werden zusätzlich mathematischbehandelt und somit weiter verschleiert (Konfusion). Dadurch sollenSelbstähnlichkeitenund sich wiederholende relative Konvergenzeigenschaften der berechnetenPunktefolgen in der komplexen Zahlenebene unkenntlich gemacht werden,sodaß sichein Feld mit möglichstzufälligen,sich nicht wiederholenden Werten ergibt. Ziel ist die Schaffungvon zufälligenWerten als Schlüsselbasisund der konsequente Ausschluß vonschlechten, leicht zu erratenden Schlüsseln. [0056] Besondersgünstigedynamische Eigenschaften ergeben sich bei Startwerten der Berechningin den Randbereichen der Mandelbrot- und Juliamengen. [0057] Inder vorliegenden Implementierung des AES-MOD wurden lediglich zweiBeispiele fürStartwerte eingerichtet. Die Startwerte gehören zu den in Wartungsintervallenveränderbarenfreien Parametern der Implementation. Weiterhin können neueStartwerte fürdie Berechnung des Fraktalen Feldes explizit vorgegeben werden. [0058] Indrei Schleifen werden 256 Werte mit dem Variablentyp Float (4-Byte)berechnet. Daraus ergeben sich 1024 Byte-Werte. Die erste Schleifemit 4 Durchläufen ändert denStartwert um den im Initialen Schlüsselfeld übermittelten x-Sprungwert imRealteil (x-Richtung). In der folgenden Schleife mit 4 Durchläufen wird derim Imaginärteil(y-Richtung) um den y-Sprungwertgeändert.Und in der innersten Schleife werden jeweils vier aufeinanderfolgendeIterationen berechnet. Aus zwei aufeinanderfolgenden Punkten derjeweiligen Iteration werden jeweils 4 neue Werte für das fraktaleFeld berechnet. Die berechneten Werte sind jeweils 4 Byte lang.Daraus ergeben sich 1024 Bytes fürdas fraktale Feld. [0059] AlsVorgabe fürdie Berechnung der Punktefolge mit den Funktionen zur Berechnungvon Fraktalen wird ein Startpunkt in der komplexen Ebene festgelegt.Im Rahmen der Berechung wird die Variation dieses Punktes nur ineiner Umgebung des Startwertes zugelassen. Hier sind jedoch auchandere Vorgaben oder Verfahren möglich.Der Startwert kann jedoch in Wartungsintervallen geändert werden. [0060] DerStartwert der Berechnung fürdas fraktale Feld ist in der vorliegenden Implementation festgelegt. Ausgehendvon diesem Startwert werden die im initalen Schlüsselfeld transportierten Sprungwerteauf eine festgelegte, wartbare Sprungtiefe (Änderung der Grössenordnung)reduziert. Es werden nach jeder Änderung desStartwertes vier Wertepaare ermittelt. Zu jeweils zwei Wertepaarenwerden die Realteile und Imaginaerteile mittels XOR verknüpft, zusätzlich wirdder Abstand zum Ursprung (Radius) berechnet und durch Verknüpfung mitdem berechneten Radius zwei weitere Werte für das Fraktale Feld bestimmt.Danach wird der Startwert durch Addition des Offsetwertes geändert. Aufdiese Weise werden aus 64 fraktal berechneten Punkten durch Manipulation256 Floatingpoint-Werte, also insgesamt 1024 Bytes für das Feldgeneriert. [0061] Nachfolgendbeschriebene Abfolge von Zuweisungen erzeugt den Kern des fraktalenFeldes. Weitere feste, parametrisierbare Offsetverschiebungen sindzusätzlichin übergeordnetenSchleifen enthalten. [0062] Ausdem initialen Schlüsselfeldwerden bei Sitzungseröffnungdie neuen Startwerte fürden Pseudo Zufallszahlengenerator ermittelt. Zwei Zahlen von jeweils4 Byte Längewerden als Basis fürdie weitere Berechnung der 4-Byte grossen Zufallswerte benutzt. [0063] AlsPseudo Zufallszahlengenerator wird folgender Algorithmus eingesetzt[6]: RAND(a,b)(((a = 36969 * (a & 65535) + (a >> 16)) << 16) + (b = 18000* (b & 65535)+ (b >> 16)) ) [0064] DieStartwerte von a uns b stammen aus dem initialen Schlüsselfeldund werden fortlaufend verändert (rval[0]und rval[1]). Der aktuelle Wert des Zufallszahlengenerators istunter randval gespeichert. Alle Daten im Umfeld der Zufallszahlensind in der Struktur „randkey_trandkey" gespeichert.Um eine einwandfreie Entschlüsselungzu gewährleisten,müssendie Startwerte des Zufallszahlengenerators vor dem Beginn einerVerschlüsselungunbedingt gesichert und vor der Entschlüsselung wieder hergestelltwerden. [0065] DerWert des Zufallszahlengenerators wird nach jeder Verschlüsselung/Entschlüsselungeines Datenblockes verändert. [0066] Derbenutzte Pseudo Zufallszahlengenerator mit einer Periode von ca2^60 stammt aus [6]. Die damit generierten Zufallszahlenfolgen sindnicht sicher genug, um allein damit einen sicheren Strom von Zufallszahlenfür einenVerschlüsselungsalgorithmuszu erstellen [3,6]. Die damit erzeugten Sequenzen von Zufallszahlenwerden jedoch nur als Zeiger auf Berechnungsfunktionen für die Schlüsselwerte,sowie zur Ableitung von Offsetwerten in den Selektionsfunktionenbei der Auswahl des Startwertes innerhalb des fraktalen Feldes benutzt.Das Bestimmen des Algorithmus und des aktuellen Zufallswertes ausden Ausgangsdaten ist wegen der unterbrochenen Abhängigkeitund weil die Werte niemals ausserhalb des Kontrollers sichtbar werdennicht einfach möglich.Damit wird die Sicherheit des Pseudo Zufallsgenerators in der vorliegendenApplikation zunächst alsausreichend erachtet. Hier könntengegebenfalls sicherere, rückgekoppeltelineare Schieberegister (LSFR, [3]) in Verbindung mit den internenPLD zum Aufbau eines Schieberegisters des uPSD benutzt werden. Eine ausschließliche Nutzungeines rückgekoppeltenSchieberegisters auf der Basis der OMC-Zellen des uPSD ist nichtanzuraten, da diese in Wartungsintervallen nicht neu programmiertwerden können. [0067] Derdritte Kern der Pseudo Zufallsschlüssel Erzeugung wird durch denAufruf von kleinen Selektionsfunktionen gebildet. Welche der biszu 256 Funktionen aufgerufen wird, steuert ein Teil des aktuellenZufallswertes. Die Selektionsfunktionen beinhalten beliebige mathematischenAnweisungen, mit denen aus dem zuvor berechneten Fraktale Feld sprunghafteinzelne Bytes ausgewähltwerden. Die selektierte Anzahl der Bytes entspricht der vorgegebenenSchlüssellänge zumBasisschlüsselsfür dieRijndaelverschlüsselung(128, 192, 256 Bit). [0068] Beispielsweisewird jedes 17. Byte aus dem fraktalen Feld in den nächsten Schlüssel aufgenommen. DieSelektionsfunktionen ermitteln weitere Werte auf der Basis einesIndex überdas fraktale Feld. Die Funktionen werden intern so begrenzt, daß der berechneteIndex niemals die Größe des MaximalzulässigenIndex überschreitet.Um die Durchmischung noch weiter zu erhöhen wird aus dem Zufallszahlenwertzusätzlichein Offsetwert fürdie Indexberechnung hinzugefügt. [0069] DieSelektionsfunktionen liegen in dem Codebereich, der in Wartungsintervallengeändertwerden kann. Damit sind diese Funktionen austauschbar. Weiterhinwurde darauf geachtet, daß dieAuswahl der Funktion nicht übereine Case-Struktur im Programmlauf erfolgt, damit aus der Laufzeitder Selektion nicht auf die benutzte Funktion geschlossen werdenkann (vgl. Angriffsmöglichkeitenfür Verschlüsselungssysteme[1]). [0070] DieFunktionen könnenbeispielsweise folgender Art sein: – Suchevon Bytes im Feld mit Modulo Operationen über den Index – Forlaufendgelesene Werte mit einem Offset aus dem Zufallswert abgeleitet – XORzweiter von fortlaufend oder modulo gelesenen Bytes – Links/RechtsRotieren der Bits einzelner Bytes in Abhängigkeit vom Zufallswert [0071] DieSelektionsfunktionen sind eine besonders wirksame Möglichkeitdas Ermitteln von Schlüsselinformationenund Schlüsselberechnungsverfahrenaus den verschlüsseltenDaten zu erschweren, sodass aus einer Sammlung von bekannten Paarenvon Klartext und Geheimtextdatenblöcken nicht einfach auf dieSchlüsselgenerierungsverfahrenzurückgeschlossenwerden kann. [0072] Dergesamte, sicherheitsrelevante Schlüssel besteht aus dem IntrinsischenSchlüssel,dem initialen Schlüsselfeld,der Kenntnis der Funktion zur Ermittlung der Startwerte für die Berechnungdes Einmalschlüssels.Dieser besteht seinerseits im Kern aus dem fraktal berechneten Datenfeld,dem Startwert des Zufallszahlengenerators, der Kenntnis der Auswahlvorschrifteninnerhalb der Selektionsfunktionen sowie weiterer festgeschriebener,jedoch ebenfalls in Wartungsintervallen änderbarer Parameter. Die Vielzahlvon Abhängigkeitenund Parametrisierungen erlaubt es, bei teilweise gleichbleibendenParametrisierungen spezielle Zielsysteme oder eine Gruppe von Zielsystemensicherheitstechnisch voneinander anzugrenzen, ohne direkt intrinsischeSchlüsselfür jedesSystem neu vergeben zu müssen. [0073] DieVerschlüsselungeines Datenstroms erfolgt beim Standard Rijndaelverfahren im CBC-Modus. Dazu wirdein Initialvektor von der Größe einesDatenblocks aus einer zufälligenBytefolge erstellt. Die Verschlüsselungerfolgt durch Verlknüpfungdes ersten Datenblocks mit dem Initialvektor und anschliessende Rundenverschlüsselung.Der nachfolgende Datenblock wird jeweils vor der Verschlüsselungmit den vorhergehenden Datenblock verknüpft. Eine besondere Behandlungerfahren die letzten beiden Datenblöcke. (vgl [1,4]). [0074] DieVerschlüsselungeiner grösserenDatenmenge im CBC-Modus würdein der vorliegenden Implementation Veränderungen an den zugrundeliegendenBasisfunktionen der Referenzinstallation notwendig machen, woraufim vorliegenden Design soweit als möglich verzichtet wurde. Die ÜbertragunggrössererMengen von zu verschlüsselndenQuelldaten kann nur blockweise überdie serielle Schnittstelle erfolgen. Dadurch ergibt sich eine Beschränkung derVerschlüsselungim CBC-Modus auf Datenblocke in der Grösse des Transferpuffers von960 Bytes. [0075] DieNachteile der Standard-Rijndael-Verschlüsselung im ECB-Mode wird beigleichartigen Quelldaten sofort deutlich: Jeder Datenblock wirdin einer identischen Weise verschlüsselt. [0076] Dadurchsind strukturelle Informationen in den Quelldaten sichtbar, wasbei Verschlüsselungssystemenunbedingt vermieden werden muß.(vgl. Testfunktionen Test Standard-Rijndael $TSR) [0077] DiesenNachteil besitzt die Verschlüsselungauf der Basis einer Pseudo Zufallsschlüsselfolge nicht. Gleiche Quelldatenin einem Block werden in vollkommen verschiedene verschlüsselte Datenblöcke übersetzt. Insoferneignet sich die Erweiterung durch die Rijndael-Erweiterung auchzur Nutzung im ECB-Modus. In der vorliegenden Implementation können dieVerschlüsselungenmit der Rijndael-Erweiterung sowohl im CBC, als auch im ECB-Modusdurchgeführtwerden. [0078] DasInitialisieren einer Sitzung könntenachfolgende Struktur besitzen (ist derzeit nicht implementiert): DemSender ist der Intrinsische Schlüsseldes Empfängersbekannt. Er verschlüsselteinen Initiales Schlüsselfeldmit zufälliggewähltenStartwerten fürden Pseudozufallsschlüsselder Sitzung. Weitere Informationen, wie die Kenntnis der Basisdatenzur Berechnung des fraktalen Schlüsselfeldes und die Schlüsselselektionsfunktioneninklusive der Parametrisierung werden nicht ausgetauscht. DieseInformationen sind fest in Sender und Empfänger gespeichert und können nurin speziell autorisierten Wartungssitzungen verändert werden. [0079] Gegebenenfallskann überdas Initiale Schlüsselfeldzusätzlichauf Konsistenzinformationen zur Kontrolle der Übertragungsqualität der Übertragungsstrecketransportiert werden. [0080] DasverschlüsselteInitiale Schlüsselfeldwird an den Empfänger übermitteltund von diesem mit dem Intrinsischen Schlüssel entschlüsselt. Mitden Daten wird im Empfängerdas Fraktale Feld berechnet und der Pseudozufallszahlengeneratorinitialisiert. Eine Autentifikation des Senders kann über denIntrinsischen Schlüsselerfolgen. [0081] Senderund Empfängerinitialisieren den fortlaufenden Zufallsschlüssel mit Hilfe des jetzt beiderseits bekanntendekodierten Initialen Schlüsselfeldes.Dazu wird das fraktale Feld erstellt und der Pseudozufallsgeneratorsauf beiden Seiten initialisiert. Danach kann die blockweise Verschlüsselungder Klartextdaten auf dem Sender, der anschließende Transfer zum Empfänger unddie blockweise Entschlüsselungder Quellinformationen auf dem Empfänger beginnen. [0082] Umden Datenstrom zu steuern, müssenzusätzlichStatus- und Steuerungsinformationen zwischen Sender und Empfänger aufdem gleichen Kanal ausgestauscht werden. Dies ist insbesondere deshalbnotwendig, weil die Entschlüsselungbeim Rijndael-Algorithmus ca. 30% langsamer abläuft, als die Verschlüsselung. [0083] Inder vorliegenden Implementation erfolgt dazu eine Unterbrechungdes Datenstromes durch das X-ON/X-OFF Protokoll der seriellen Schnittstelle. [0084] Dadurchbedingt müssendie verschlüsseltenDaten in einer speziellen Codierung übertragen werden, um Steuerinformationenvon den verschlüsseltenDaten zu unterscheiden. Diese Codierung ist die Umwandlung der einzelnenZeichen in Hexadezimaläquivalente,die Darstellung eines Zeichens als zwei Zeichen aus dem Wertevorrat0-9 und A-F. Entsprechende Funktionen sind auf dem uPSD AES-MODimplementiert. 4 Anhang 4.1 Literaturliste [1] Reinhard Wobst Abenteuer Kryptologie AddisonWessley, 3. Auflage 2001 ISBN 3-8273-1815-7[2] Rudolf Kippenhahn Verschlüsselte Botschaften Rororo,3. Auflage 2003 ISBN 3-499-60807-3[3] Henk C.A. van Tilborg Fundamentals of Cryptology KluverAcademic Publishers, Second Printing 2001 ISBN 0-7923-8675-2[4] Joan Daemen, Vincent Rijmen AES Proposal, The RijndaelBlock Cipher Rijndael Documentation, Version 2, September 1999 http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael.pdf[5] Joan Daemen Reference Implementation (+ KATs and MCTs)v2.0 AES-MOD CD-Dokumentation: AES_SRC_2[6] Brian Gladman <brg@gladman.me.uk> An AES (Rijndael)Implementation in C/C++ (as specified in FIPS 197) AES-MODCD-Dokumentation: AES_SRC_1[7] Stefan Mangard A Simple Power-Analysis (SPA) Attackon Implementations of the AES Key Expansion Institute for AppliedInformation Processing and Communications Graz University ofTechnology Algorithmica, 2002 AES-MOD CD-Dokumentation:Dokumentation/AES_Power_Attack.pdf[8] Die deutsche Bibliothek Lexikon der Physik SpektrumAkademischer Verlag, 1999 ISBN 3-86025-292-5[9] Steffen Polster Mathematik 2003, Mathematikprogramm,Bereich Chaostheorie Mathematische Grundlagen zur Chaostheoriesind It. St. Polster dem Buch Algorithmen für Chaos und Fraktale, Herrmann,Addison Wesley Publishing Company Bonn 1994 entnommen.[10] J. Dufner, A. Roser, F. Unseld Fraktale und Juliamengen VerlagHarri Deutsch, 1998 ISBN 3-8171-1564-4
权利要求:
Claims (1) [1] Das im Patent zu schützendeVerfahren ist ein Vorschlag fürein Einmalschlüsselverfahren,das im Zusammenhang mit einem beliebigen Blockverschlüsselungsalgorithmuseingesetzt werden kann. Details sind auch der 1 zuentnehmen. Das zu schützendeEinmalschlüsselverfahrenersetzt den festen Basisschlüsselsbeim symmetrischen Blockverschlüsselungsverfahrendurch eine Schlüsselsequenz.Für jedenKlartextdatenblock einer Verschlüsselungssitzungwird mit dem Verfahren ein unabhängigerBasisschlüsselerzeugt und mit diesem verschlüsselt. DieSchlüsselsequenzist fürjede Sitzung einmalig und hängtallein von den Sitzungsparametern ab. Das zu schützende Einmalschlüsselverfahrenbasiert auf drei Hauptmerkmalen, die im folgenden beschrieben werden. 1.Das erste Hauptmerkmal ist die Berechnung und Aufbereitung einesBytefeldes (Bytematrix) überfraktale Berechnungsmethoden, dessen Einzelwerte mit Hilfe der Indizierungdes Bytefeldes zu Bytegruppen zusammengestellt werden können, dadurchgekennzeichnet, daß 1.1.mit Hilfe von iterierten Funktionensystemen vom Grad >=2 (im Folgenden alsfraktale Funktionen bezeichnet) eine Folge von Punkten in der komplexen,GaußschenZahlenebene berechnet, byteweise manipuliert und in einer Matrixabgelegt werden. Unter anderem könnenFunktionen zur Berechnung von Mandelbrot- und Julia-Mengen dazubenutzt werden. 1.2. die so berechneten Punkte bei der byteweisenManipulation mit einfachen, mathematischen Verfahren zueinanderin Relation gesetzt werden, sodaß eine erste Konfusion undDiffusion der entstandenen Punktfolgen gegenüber dem benutzten Berechnungsverfahrenerreicht wird. Die so errechnete Liste von Punkten wird anschließend alsein indexbehaftetes Feld von Bytes (Bytematrix, Bytefeld, FraktalesFeld) behandelt. Das Bytefeld dient als Basis für das anschließende Zusammenstelleneiner Bytefolge zu einem Basisschlüssel mit Hilfe einer Selektionsfunktion. 1.3.die mit iterierten Funktionensystemen in der komplexen Zahlenebeneberechnete Punktefolge wird für jedeneue Sitzung im Sender und Empfängerin Abhängigkeitvon den Sitzungsparametern neu erzeugt und als Bytefeld gespeichert. 2.Das zweite Hauptmerkmal besteht darin, daß eine Gruppe von Selektionsfunktionendie Aufgabe hat, Bytefolgen aus dem fraktal berechneten Bytefeldzu selektieren, dadurch gekennzeichnet, daß 2.1. die Selektionsfunktionenmathematische Anweisungen beinhalten, die den Zugriff auf den Inhaltdes Bytefeldes überden Feldindex erlauben. 2.2. eine dieser Selektionsfunktionenaus der Liste der möglichenSelektionsfunktionen aufgrund des aktuellen Zahlenwertes eines Pseudozufallszahlengeneratorsausgewähltwird. 2.3. aus dem aktuellen Zahlenwert des Zufallszahlengeneratorsdurch Maskierung ein Offsetwert entnommen wird. Dieser quasizufällige Offsetwertwird bei der Indexberechnung von der Selektionsfunktion berücksichtigt. 2.4.der nächsteTeilschlüsseldes Einmalschlüsselserhalten wird, indem aus der Bytematrix mittels der zufällig ausgewählten Selektionsfunktiondie Anzahl von Bytes entnommen wird, die der aktuell eingestelltenSchlüssellänge entspricht. 2.5.die Selektionsfunktionen in einem Feld von Funktionen abgelegt sind.Der Zugriff auf die nächste,zufällig ausgewählte Funktionerfolgt überZeiger auf diese Funktionen. So können aus der Laufzeit zum Auffindender Funktion im Code keine Rückschlüsse aufdie benutzte Selektionsfunktion bei der Krypanalyse gezogen werden. 2.6.die mit der jeweiligen Selektionsfunktion zusammengestellte Bytefolgezum nächstenBasisschlüsselzusammengestellt wird. Mit Hilfe dieses Basisschlüssels wirdder nächstfolgendeDatenblock überdas eingesetzte Blockverschlüsselungsverfahrenver- bzw. entschlüsselt. 2.7.alle in einer Schar gruppierten Selektionsfunktionen eine möglichstgleichlange Verarbeitungszeit aufweisen. Die Verarbeitungsdauerwährendder Auswahl einer Bytefolge aus dem Fraktalen Feld darf keinen Hinweisauf mathematische Einzelheiten der eingesetzten Selektionsfunktionfür dieKryptanalyse liefern. 2.8. die Schar der Selektionsfunktionenals Ganzes im Rahmen von Wartungsarbeiten ferngesteuert ausgetauschtwerden kann, und somit ein automatisierter Schlüsselwechsel möglich ist. 3.Das dritte Hauptmerkmal besteht im Einsatz eines unabhängig arbeitendenPseudozufallszahlengenerator, der mindestens über eine Periode von 2^60 verfügt. DerEinsatz ist dadurch gekennzeichnet, daß 3.1. Aus den erzeugtenZufallszahlen durch Maskierung die Auswahl der nächsten Sekeltionsfunktionsquasizufälliggesteuert wird. 3.2. überMaskierungen Werte aus der aktuellen Zufallszahl ausgekoppelt undzur quasizufälligenInitialisierung der Indexberechnungen durch die Selektionsfunktionenherangezogen werden. 3.3. Durch geeignete, dynamische Maskierungdes Zufallszahlenwertes Gruppenfunktionen aufgebaut werden können. DasEinmalschlüsselverfahrenbesitzt Parameter, die vor jeder neuen Verschlüsselung initialisiert werdenmüssen.Dazu gehörender Ausgangspunkt und die Sprungoffsetwerte für die Berechnung von Punktepaarenmit fraktalen Berechnungsmethoden in der komplexen Ebene zur Bestimmungeines Bytefeldes, sowie die Startwerte für den Pseudozufallszahlengenerator. DieseWerte werden gegebenenfalls im Rahmen der Sitzungseröffnung zwischenSender und Empfängerausgehandelt. Das dabei zugrundeliegende Sitzungsprotokoll kannauf verschiedenen bekannten Verfahren beruhen und ist nicht Bestandteildes Patentanspruchs.
类似技术:
公开号 | 公开日 | 专利标题 Mouha et al.2014|Chaskey: an efficient MAC algorithm for 32-bit microcontrollers JP5646612B2|2014-12-24|中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム Ekdahl et al.2000|SNOW-a new stream cipher DE60222052T2|2008-05-21|Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme | US6907127B1|2005-06-14|Hierarchical key management encoding and decoding US7415618B2|2008-08-19|Permutation of opcode values for application program obfuscation KR100855958B1|2008-09-02|해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법 JP5485694B2|2014-05-07|ホワイトボックス実施のための暗号化方法 JP4669046B2|2011-04-13|暗号的に安全な擬似乱数生成器 US9336160B2|2016-05-10|Low latency block cipher CA2632857C|2012-11-27|Closed galois field combination Ekdahl et al.2002|A new version of the stream cipher SNOW US6345101B1|2002-02-05|Cryptographic method and apparatus for data communication and storage JP5822970B2|2015-11-25|擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス JP5139578B2|2013-02-06|有限体アルゴリズムを使用したランダム数発生器を含む暗号化システム US6014446A|2000-01-11|Apparatus for providing improved encryption protection in a communication system KR100610367B1|2006-08-10|정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치 KR100628280B1|2007-01-31|데이타시퀀스의암호화또는해독방법 KR101345083B1|2013-12-26|Encryption protection method DE60314055T2|2008-01-24|Verschlüsselung und Entschlüsselung in einem Schaltkreis, bei der eine nichtlineare Transformation wie die SUBBYTE-Operation maskiert wird EP1873671B1|2009-08-19|Verfahren zum Schutz von IC-Karten vor Leistungsanalyse-Attacken AU2005263805B2|2009-11-19|Method and device for carrying out a cryptographic calculation EP2197145A2|2010-06-16|Verfahren und Vorrichtungen für einen geketteten Verschlüsslungsmodus US9274976B2|2016-03-01|Code tampering protection for insecure environments US7505588B2|2009-03-17|Stream cipher design with revolving buffers
同族专利:
公开号 | 公开日 DE102004006570B4|2007-06-21|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-09-29| ON| Later submitted papers| 2005-09-29| OP8| Request for examination as to paragraph 44 patent law| 2007-12-20| 8364| No opposition during term of opposition| 2009-04-09| 8320| Willingness to grant licenses declared (paragraph 23)| 2013-12-12| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|Effective date: 20130903 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 DE200410006570|DE102004006570B4|2004-02-11|2004-02-11|Einmalschlüsselgenerierungsverfahren auf fraktaler Berechnungsbasis für Blockverschlüsselungsalgorithmen|DE200410006570| DE102004006570B4|2004-02-11|2004-02-11|Einmalschlüsselgenerierungsverfahren auf fraktaler Berechnungsbasis für Blockverschlüsselungsalgorithmen| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|